80248af0: 27 bd ff d8  ADDIU sp, sp, 0xffffffd8 (-40)
80248af4: af bf 00 1c  SW ra, sp, 0x1c (28)
80248af8: af a4 00 28  SW a0, sp, 0x28 (40)
80248afc: af b0 00 18  SW s0, sp, 0x18 (24)

80248b00: 0c 09 22 59  JAL 0x80248964 (-2145089180)         0x80248964();
80248b04: 00 00 00 00  NOP

80248b08: 0c 09 22 09  JAL 0x80248824 (-2145089500)         0x80248824();
80248b0c: 00 00 00 00  NOP

80248b10: 0c 09 e6 77  JAL 0x802799dc (-2144888356)         0x802799dc();
80248b14: 00 00 00 00  NOP

80248b18: 3c 05 80 34  LUI a1, 0x8034 (32820)
80248b1c: 3c 06 80 34  LUI a2, 0x8034 (32820)
80248b20: 24 c6 b0 10  ADDIU a2, a2, 0xffffb010 (-20464)
80248b24: 24 a5 b0 48  ADDIU a1, a1, 0xffffb048 (-20408)
80248b28: 24 04 00 02  ADDIU a0, r0, 0x2 (2)
80248b2c: 0c 09 1a c5  JAL 0x80246b14 (-2145096940)         0x80246b14(2, 0x8033b048, 0x8033b010, 1);
80248b30: 24 07 00 01  ADDIU a3, r0, 0x1 (1)

80248b34: 3c 04 10 00  LUI a0, 0x1000 (4096)
80248b38: 0c 09 df d4  JAL 0x80277f50 (-2144895152)         [sp + 0x24] = 0x80277f50(0x10000000);
80248b3c: 24 84 00 00  ADDIU a0, a0, 0x0 (0)
80248b40: af a2 00 24  SW v0, sp, 0x24 (36)

80248b44: 24 04 00 02  ADDIU a0, r0, 0x2 (2)
80248b48: 00 00 28 25  OR a1, r0, r0
80248b4c: 0c 0c 86 6b  JAL 0x803219ac (-2144200276)         0x803219ac(2, 0, 0);
80248b50: 00 00 30 25  OR a2, r0, r0

80248b54: 0c 09 e9 6d  JAL 0x8027a5b4 (-2144885324)
80248b58: 00 00 00 00  NOP
80248b5c: 30 50 ff ff  ANDI s0, v0, 0xffff (65535)
80248b60: 0c 09 23 82  JAL 0x80248e08 (-2145087992)         0x80248e08(0x8027a5b4() & 0xffff);
80248b64: 02 00 20 25  OR a0, s0, r0

80248b68: 0c 09 1f c2  JAL 0x80247f08 (-2145091832)         0x80247f08();
80248b6c: 00 00 00 00  NOP

@
80248b70: 3c 0e 80 33  LUI t6, 0x8033 (32819)
80248b74: 81 ce d5 84  LB t6, t6, 0xffffd584 (-10876)
80248b78: 11 c0 00 05  BEQ r0, t6, 0x80248b90 (pc + 0x14)   if (!*(0x8032d584)) goto 0x80248b90;
80248b7c: 00 00 00 00  NOP

80248b80: 0c 09 1f 6d  JAL 0x80247db4 (-2145092172)         0x80247db4();
80248b84: 00 00 00 00  NOP

80248b88: 10 00 00 23  BEQ r0, r0, 0x80248c18 (pc + 0x8c)   goto 0x80248c18;
80248b8c: 00 00 00 00  NOP

@
80248b90: 0c 09 f8 f8  JAL 0x8027e3e0 (-2144869408)         0x8027e3e0();
80248b94: 00 00 20 25  OR a0, r0, r0

80248b98: 3c 0f 80 34  LUI t7, 0x8034 (32820)
80248b9c: 91 ef b0 78  LBU t7, t7, 0xffffb078 (-20360)
80248ba0: 11 e0 00 04  BEQ r0, t7, 0x80248bb4 (pc + 0x10)   if (!*(0x8033b078)) goto 0x80248bb4;
80248ba4: 00 00 00 00  NOP

80248ba8: 3c 04 80 34  LUI a0, 0x8034 (32820)
80248bac: 0c 0c 8e 98  JAL 0x80323a60 (-2144191904)         0x80323a60(0x8033af78);
80248bb0: 24 84 af 78  ADDIU a0, a0, 0xffffaf78 (-20616)

@
80248bb4: 0c 09 25 36  JAL 0x802494d8 (-2145086248)         0x802494d8();
80248bb8: 00 00 00 00  NOP

80248bbc: 0c 09 1f f7  JAL 0x80247fdc (-2145091620)         0x80247fdc();
80248bc0: 00 00 00 00  NOP

80248bc4: 0c 09 21 8e  JAL 0x80248638 (-2145089992)         0x80248638();
80248bc8: 00 00 00 00  NOP

80248bcc: 0c 0e 01 72  JAL 0x803805c8 (-2143812152)         [sp + 0x24] = 0x803805c8([sp + 0x24]);
80248bd0: 8f a4 00 24  LW a0, sp, 0x24 (36)
80248bd4: af a2 00 24  SW v0, sp, 0x24 (36)

80248bd8: 0c 09 20 24  JAL 0x80248090 (-2145091440)         0x80248090();
80248bdc: 00 00 00 00  NOP

80248be0: 3c 18 80 33  LUI t8, 0x8033 (32819)
80248be4: 83 18 d5 98  LB t8, t8, 0xffffd598 (-10856)
80248be8: 13 00 00 0b  BEQ r0, t8, 0x80248c18 (pc + 0x2c)   if (!*(0x8032d598)) goto 0x80248c18;
80248bec: 00 00 00 00  NOP

80248bf0: 3c 19 80 34  LUI t9, 0x8034 (32820)
80248bf4: 3c 08 80 34  LUI t0, 0x8034 (32820)
80248bf8: 8d 08 b0 6c  LW t0, t0, 0xffffb06c (-20372)
80248bfc: 8f 39 b0 70  LW t9, t9, 0xffffb070 (-20368)
80248c00: 3c 06 80 33  LUI a2, 0x8033 (32819)
80248c04: 24 c6 5b 80  ADDIU a2, a2, 0x5b80 (23424)
80248c08: 24 04 00 b4  ADDIU a0, r0, 0xb4 (180)
80248c0c: 24 05 00 14  ADDIU a1, r0, 0x14 (20)
80248c10: 0c 0b 58 b6  JAL 0x802d62d8 (-2144509224)         0x802d62d8(180, 20, 0x80335b80, *(0x8033b070)-*(0x8033b06c));
80248c14: 03 28 38 23  SUBU a3, t9, t0

@
80248c18: 10 00 ff d5  BEQ r0, r0, 0x80248b70 (pc - 0xac)
80248c1c: 00 00 00 00  NOP

80248c20: 10 00 00 01  BEQ r0, r0, 0x80248c28 (pc + 0x4)
80248c24: 00 00 00 00  NOP
80248c28: 8f bf 00 1c  LW ra, sp, 0x1c (28)
80248c2c: 8f b0 00 18  LW s0, sp, 0x18 (24)
80248c30: 27 bd 00 28  ADDIU sp, sp, 0x28 (40)
80248c34: 03 e0 00 08  JR ra
80248c38: 00 00 00 00  NOP
80248c3c: 00 00 00 00  NOP






80248c40: 3c 01 80 33  LUI at, 0x8033 (32819)
80248c44: a0 20 d6 00  SB r0, at, 0xffffd600 (-10752)
80248c48: 03 e0 00 08  JR ra
80248c4c: 00 00 00 00  NOP



80248af0()
{
    0x80248964();
    0x80248824();
    0x802799dc();
    0x80246b14(2, 0x8033b048, 0x8033b010, 1);
    [sp + 0x24] = segmented_to_virtual(0x10000000);
    0x803219ac(2, 0, 0);
    0x80248e08(0x8027a5b4());
    0x80247f08()

    for (;;) {
        if (*((char *)0x8032d584)) {
            0x80247db4();
        } else {
            0x8027e3e0(0);                           /* timing / profiling related */
            if (*((char *)0x8033b078)) {
                0x80323a60(0x8033af78);              /* controller related ??? */
            }
            0x802494d8()
            0x80247fdc()                             /* init GBI buffer pointers ?? */
            0x80248638()
            [sp + 0x24] = 0x803805c8([sp + 0x24]);   /* this function saves its param to 0x8038be28 and returnes the resulting value */
            0x80248090()                             /* this calls osViSwapBuffer and incrs frame buffers */
            if (*((char *)0x8032d598)) {
                0x802d62d8(180, 20, "BUF %d", *(0x8033b070) - *(0x8033b06c));
            }
        }
    }
}
